package com.probox.common.entity.service.order.impl;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.probox.common.core.utils.StringUtils;
import com.probox.common.entity.domain.order.OrderInfoItemPay;
import com.probox.common.entity.mapper.order.OrderInfoItemPayMapper;
import com.probox.common.entity.service.order.IOrderInfoItemPayService;
import com.probox.order.api.domain.OrderQuery;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.Arrays;
import java.util.List;

/**
 * 【请填写功能名称】Service业务层处理
 *
 * @author usoft
 * @date 2022-09-30
 */
@Service
@Transactional
public class OrderInfoItemPayServiceImpl extends ServiceImpl<OrderInfoItemPayMapper, OrderInfoItemPay> implements IOrderInfoItemPayService {
    @Autowired
    private OrderInfoItemPayMapper orderInfoItemPayMapper;


    /**
     * 查询【请填写功能名称】
     *
     * @param payId 【请填写功能名称】ID
     * @return 【请填写功能名称】
     */
    @Override
    public OrderInfoItemPay selectOrderInfoItemPayById(Long payId) {
        return this.getById(payId);
    }

    /**
     * 查询【请填写功能名称】列表
     *
     * @param orderInfoItemPay 【请填写功能名称】
     * @return 【请填写功能名称】
     */
    @Override
    public List<OrderInfoItemPay> queryList(OrderInfoItemPay orderInfoItemPay) {
        QueryWrapper<OrderInfoItemPay> queryWrapper = Wrappers.query();
        if (StringUtils.isNotEmpty(String.valueOf(orderInfoItemPay.getPayId())) && orderInfoItemPay.getPayId() != null) {
            queryWrapper.eq("pay_id", orderInfoItemPay.getPayId());
        }
        if (StringUtils.isNotEmpty(String.valueOf(orderInfoItemPay.getItemId())) && orderInfoItemPay.getItemId() != null) {
            queryWrapper.eq("item_id", orderInfoItemPay.getItemId());
        }
        if (StringUtils.isNotEmpty(String.valueOf(orderInfoItemPay.getOrderId())) && orderInfoItemPay.getOrderId() != null) {
            queryWrapper.eq("order_id", orderInfoItemPay.getOrderId());
        }
        if (StringUtils.isNotEmpty(String.valueOf(orderInfoItemPay.getPayStoreId())) && orderInfoItemPay.getPayStoreId() != null) {
            queryWrapper.eq("pay_store_id", orderInfoItemPay.getPayStoreId());
        }
        if (StringUtils.isNotEmpty(String.valueOf(orderInfoItemPay.getPayGoldCoin())) && orderInfoItemPay.getPayGoldCoin() != null) {
            queryWrapper.eq("pay_gold_coin", orderInfoItemPay.getPayGoldCoin());
        }
        if (StringUtils.isNotEmpty(String.valueOf(orderInfoItemPay.getPaySilverCoin())) && orderInfoItemPay.getPaySilverCoin() != null) {
            queryWrapper.eq("pay_silver_coin", orderInfoItemPay.getPaySilverCoin());
        }
        if (StringUtils.isNotEmpty(String.valueOf(orderInfoItemPay.getDataStatus())) && orderInfoItemPay.getDataStatus() != null) {
            queryWrapper.eq("data_status", orderInfoItemPay.getDataStatus());
        }
        if (StringUtils.isNotEmpty(String.valueOf(orderInfoItemPay.getCreateUser())) && orderInfoItemPay.getCreateUser() != null) {
            queryWrapper.eq("create_user", orderInfoItemPay.getCreateUser());
        }
        if (StringUtils.isNotEmpty(String.valueOf(orderInfoItemPay.getCreateName())) && orderInfoItemPay.getCreateName() != null) {
            queryWrapper.eq("create_name", orderInfoItemPay.getCreateName());
        }
        if (StringUtils.isNotEmpty(String.valueOf(orderInfoItemPay.getUpdateUser())) && orderInfoItemPay.getUpdateUser() != null) {
            queryWrapper.eq("update_user", orderInfoItemPay.getUpdateUser());
        }
        if (StringUtils.isNotEmpty(String.valueOf(orderInfoItemPay.getUpdateName())) && orderInfoItemPay.getUpdateName() != null) {
            queryWrapper.eq("update_name", orderInfoItemPay.getUpdateName());
        }
        return orderInfoItemPayMapper.selectList(queryWrapper);
    }

    @Override
    public List<OrderInfoItemPay> queryByOrderId(Long orderId) {
        QueryWrapper<OrderInfoItemPay> queryWrapper = Wrappers.query();
        queryWrapper.eq("order_id", orderId);
        return orderInfoItemPayMapper.selectList(queryWrapper);
    }

    /**
     * 新增【请填写功能名称】
     *
     * @param orderInfoItemPay 【请填写功能名称】
     * @return 结果
     */
    @Override
    public boolean insertOrderInfoItemPay(OrderInfoItemPay orderInfoItemPay) {

        return this.save(orderInfoItemPay);

    }

    /**
     * 修改【请填写功能名称】
     *
     * @param orderInfoItemPay 【请填写功能名称】
     * @return 结果
     */
    @Override
    public boolean updateOrderInfoItemPay(OrderInfoItemPay orderInfoItemPay) {

        return this.updateById(orderInfoItemPay);
    }

    /**
     * 批量删除【请填写功能名称】
     *
     * @param payIds 需要删除的【请填写功能名称】ID
     * @return 结果
     */
    @Override
    public boolean deleteOrderInfoItemPayByIds(Long[] payIds) {
        return this.removeByIds(Arrays.asList(payIds));
    }

    @Override
    public Long validateBalanceAndRedbag(OrderQuery query) {
        return orderInfoItemPayMapper.validateBalanceAndRedbag(query);
    }


}
